from functools import wraps
from flask import session, redirect, url_for
def login_required(func):
    # 不改变使用装饰器原有函数的结构(如__name__,__doc__)
    # 这里如果不加wraps，则渲染模板的时候找不到对应的名字，会报错。如果给非视图函数使用则可以不加。
    @wraps(func)
    def inner(*args, **kwargs):
        if session.get('user_id'):
            return func(*args, **kwargs)
        else:
            return redirect(url_for('login'))
    return inner